﻿/*======================================================================
== Copyright : BlueCurve (c)
== Licence   : Gnu/GPL v2.x
== Author    : Teddy Albina
== Email     : bluecurveteam@gmail.com
== Web site  : http://www.codeplex.com/BlueCurve
========================================================================*/
using System;
using System.Diagnostics;


namespace BlueCurve.Common.Application
{
    /// <summary>
    /// Fournit une méthode permettant
    /// l'enregistrement d'une tâche pour le redemarrage des applications
    /// </summary>
    public static class Restart
    {
        /// <summary>
        /// Enregistre l'application pour sont redemarrage ultérieur (2 minutes)
        /// et la tue
        /// </summary>
        /// <param name="ProcessPath">Chemin d'accès vers le fichier executable</param>
        public static void RestartApplication(string ProcessPath)
        {
            string[] now = DateTime.Now.AddMinutes(2).ToString().Split(' ');

            Process process = new Process()
            {
                StartInfo = new ProcessStartInfo()
                {
                    FileName = "schtasks",
                    Arguments = string.Format("/create /tn \"{0}\" /tr \"{1}\" /sc ONCE /sd {2} /st \"{3}\"",
                                Process.GetCurrentProcess().ProcessName,
                                ProcessPath,
                                now[0],
                                now[1])
                }
            };

            process.Start();
            // schtasks /create /tn "{0}"  /tr "{1}" /sc ONCE /sd {2} /st "{3}"
            // schtasks /create /tn "Reload blabl"  /tr "" /sc ONCE /sd MM/JJ/AA /st "HH:MM:SS"
        }
    }
}
